#!/bin/bash

# LANChat安装和测试脚本
# 此脚本将安装所有依赖并进行基本测试

set -e  # 遇到错误立即退出

echo "======================================"
echo "   LANChat 安装和测试"
echo "======================================"
echo ""

# 检查Node.js和npm
echo "检查Node.js和npm..."
if ! command -v node &> /dev/null; then
    echo "错误: 未找到Node.js。请先安装Node.js 14+。"
    exit 1
fi

if ! command -v npm &> /dev/null; then
    echo "错误: 未找到npm。请先安装npm。"
    exit 1
fi

echo "Node.js版本: $(node --version)"
echo "npm版本: $(npm --version)"
echo ""

# 安装服务器端依赖
echo "======================================"
echo "1. 安装服务器端依赖..."
echo "======================================"
cd server
echo "当前目录: $(pwd)"
npm install
if [ $? -eq 0 ]; then
    echo "✓ 服务器端依赖安装成功"
else
    echo "✗ 服务器端依赖安装失败"
    exit 1
fi
cd ..
echo ""

# 安装客户端依赖
echo "======================================"
echo "2. 安装客户端依赖..."
echo "======================================"
cd client
echo "当前目录: $(pwd)"
npm install
if [ $? -eq 0 ]; then
    echo "✓ 客户端依赖安装成功"
else
    echo "✗ 客户端依赖安装失败"
    exit 1
fi
cd ..
echo ""

# 语法检查
echo "======================================"
echo "3. 进行语法检查..."
echo "======================================"

echo "检查服务器端代码..."
node -c server/src/index.js && echo "✓ index.js 语法正确"
node -c server/src/modules/DatabaseManager.js && echo "✓ DatabaseManager.js 语法正确"
node -c server/src/modules/NetworkDiscovery.js && echo "✓ NetworkDiscovery.js 语法正确"
node -c server/src/modules/MessageHandler.js && echo "✓ MessageHandler.js 语法正确"
node -c server/src/modules/FileTransferHandler.js && echo "✓ FileTransferHandler.js 语法正确"
node -c server/src/modules/SignalingServer.js && echo "✓ SignalingServer.js 语法正确"

echo ""
echo "检查客户端代码..."
echo "(客户端使用React/JSX，跳过简单语法检查)"

echo ""

# 创建必要的目录
echo "======================================"
echo "4. 创建必要的目录..."
echo "======================================"
mkdir -p server/data
mkdir -p server/uploads
echo "✓ 目录创建成功"
echo ""

# 测试总结
echo "======================================"
echo "   安装完成!"
echo "======================================"
echo ""
echo "所有依赖已安装，代码语法检查通过。"
echo ""
echo "下一步操作:"
echo ""
echo "启动服务器:"
echo "  cd server"
echo "  npm run dev"
echo ""
echo "启动客户端 (在新终端窗口):"
echo "  cd client"
echo "  npm run electron-dev"
echo ""
echo "构建生产版本:"
echo "  服务器: cd server && npm run build-deb"
echo "  客户端: cd client && npm run electron-build"
echo ""
